package account;

/**
 * Datenklasse einer Transaktion.<br>
 * Eine Transaktion dient zur Datenuebermittlung zwischen Model und View.<br>
 * <br>
 * Dabei beinhaltet ein Objekt der Klasse den Index des Kontos, den Betrag der Transaktion sowie ob es such um eine Aus- oder Einzahlung handelt. 
 *
 *
 * @author Patrick Bauer
 */
public class AccountAction {
    /**
     * Konstante fuer eine Einzahlung
     */
    public final static int RAISE = 0;

    /**
     * Konstante fuer eine Auszahlung
     */
    public final static int LOWER = 1;

    /**
     * Der Index des Accounts dieser Tranksaktion.
     */
    private int accountIndex;

    /**
     * Der Geldbetrag welcher in dieser Transatkion verwendet wurde.
     */
    private float difference;

    /**
     * Dient zur Unterscheidung zwischen Ein- und Auszahlung
     */
    private int action;


    /**
     * Instanziert eine neue Transaktion und setzt dabei den Kontoindex, den Geldbetrag und die Aktion (Ein- oder Auszahlung).
     *
     * @param accountIndex
     * @param difference
     * @param action
     */
    public AccountAction(int accountIndex, float difference, int action) {
        this.accountIndex = accountIndex;
        this.difference = difference;
        this.action = action;
    }

    /**
     * Liefert den Index des Kontos
     *
     * @return der Kontoindex
     */
    public int getAccountIndex() {
        return accountIndex;
    }

    /**
     * Liefert den Geldbetrag der Tranksaktion
     *
     * @return der Geldbetrag
     */
    public float getDifference() {
        return difference;
    }

    /**
     * Liefert die Aktion der Transaktion (Ein- oder Auszahlung)
     *
     * @return the action
     */
    public int getAction() {
        return action;
    }
    
}
